<template>
  <div></div>
</template>

<script setup lang="ts">
import { confirm } from '../../utils/confirm'
import { success, error } from '../../utils/toast'

// Props
interface Props {
  delMethod?: Function
  refreshMethod?: Function
  itemType?: string // 项目类型，默认为"项目"
}

const props = withDefaults(defineProps<Props>(), {
  itemType: '项目'
})

// 打开删除确认对话框
const open = async (param: any) => {
  try {
    await confirm.delete(param?.name || '该项目', props.itemType)
    
    // 执行删除方法
    if (props.delMethod) {
      await props.delMethod(param)
      // 刷新数据
      if (props.refreshMethod) {
        await props.refreshMethod()
      }
    }
  } catch (err) {
    // 用户取消删除或其他错误
    if (err !== 'cancel') {
      error('删除失败')
    }
  }
}

// 暴露方法
defineExpose({
  open
})
</script>
